10 - Advanced Design and Programming [ID:12509]
50 von 772 angezeigt

Ich würde sagen, es ist 2 Uhr und wir beginnen mit der Vorlesung.

Also willkommen wieder einmal zu ADAPT, auch von mir nach der vorhergegangenen Übung.

Geht es uns jetzt um die neuen Inhalte in der Vorbereitung für die Klasse, für den Unterricht hatten sie sich ja schon Papiere angeeignet und ich möchte das jetzt vertiefen.

Das Thema in dieser neunten Woche des Kurses sind Wertobjekte, Value Objects im Englischen.

Und das ist ein sehr befriedigendes Thema, weil es sowohl konzeptuell anspruchsvoll ist,

wie auch technisch höchst relevant und praktisch.

Manchmal ist es ja so, dass man thematisch etwas hat, das konzeptuell sehr spannend ist,

tiefe Semantik hat, dabei dann in der Praxis zu kurz kommt.

Oder umgekehrt praktisch sehr relevante Themen mit relativ wenig inhaltlicher Tiefe.

Hier haben wir beides. Wenn ich Wertobjekte sage,

dann kennen Sie das vielleicht unter einem anderen Begriff, unter dem Namen Immutables.

Das ist aber aus meiner Sicht eine Implementierungsstrategie, eine von mehreren für Wertobjekte,

die wir natürlich heute auch besprechen werden.

Gut, dass die grundlegende Einsicht, welche diese Vorlesung motiviert,

also diese spezifische Vorlesung ist, schon jene, dass wenn Sie die Welt modellieren,

und Sie mögen sich erinnern, eine Perspektive auf objektorientierten Entwurf und Programmierung ist,

dass wir die Welt abbilden wollen in einem Software-System

durch angemessene Abstraktionen, wie zum Beispiel Objekte der realen Welt

durch Objekte im Software-System zu repräsentieren.

Wenn Sie diese Perspektive einnehmen, dann stellen Sie fest,

dass nicht alles da draußen in der realen Welt Objektcharakter hat.

Genauer gibt es eine zweite Art von Konzept, eben die Werte.

Intuitiv kennen Sie die vom Programmieren, Zahlen, Integers, Floats und so weiter,

sind irgendwie keine Objekte, sondern Werte.

Und heute möchte ich eine scharfe Grenze zwischen Werten und Objekten ziehen,

die nebeneinander existieren und sich einander ausschließen.

Ein beobachtetes Konzept, Sie durch Sie als Menschen in der realen Welt

beim Nachdenken, über was ein Software-System machen können und soll.

Ein von Ihnen erkanntes Konzept ist entweder ein Wert oder ein Objekt

und nicht beides. Also mit anderen Worten, es schließt sich aus.

So, was sind Werte? Das sind Abstraktionen, die Sie in der Betrachtung

Ihrer Umwelt oder bei der Ermittlung von Anforderungen für ein Projekt

beim Kunden erkennen. Abstraktionen, die bestimmte Eigenschaften haben,

nämlich, dass sie irgendwie quasi schon immer da waren und auch nie sterben.

Gerade jetzt dann im Gegensatz zu Objekten, die einen Lebenszyklus haben,

werden geboren, leben, sterben, also werden gelöscht, haben Werte,

keinen Lebenszyklus, gibt kein erkennbares Geburtsdatum,

keine Änderung ihres Zustands und auch kein Verschwinden,

Sterben im Sinne von löschen.

Dazu gehört, dass Werte irgendwie auch keine Identität haben.

Nehmen wir als einfaches Beispiel die Zahl 2.

Die Zahl hat keine Identität.

Ich höre jetzt gerade ein Händler, wer will, wenn das verschwindet.

Man kann natürlich den Wert 2 als Attribut in einem Objekt umwickeln,

das dann Identität hat, aber das ist dann nicht der Wert 2,

sondern halt eines oder mehrere Objekte, jeweils mit ihrer eigenen Identität,

einen großen Wert umwickeln als ein Feld, das mit dem Wert 2 belegt ist.

Und worum es mir heute geht, ist, dass das, was wir hier intuitiv kennen,

für die Zahlen gilt, für komplexere Zahlen und für jede Menge Fachkonzepte,

zum Beispiel technische Fachkonzepte wie URLs,

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:07:51 Min

Aufnahmedatum

2019-12-09

Hochgeladen am

2019-12-11 11:29:02

Sprache

de-DE

Diese Vorlesung wurde als Videokonferenz gehalten und entsprechend aufgezeichnet.

In den ersten ca. 15 Minuten waren die Folien leider nicht sichtbar, Sorry.

Tags

immutable immutability
Einbetten
Wordpress FAU Plugin
iFrame
Teilen